\name{QueryWithGeometry2DF}
\alias{QueryWithGeometry2DF}
%- Also NEED an '\alias' for EACH other topic documented here.
\title{
Query DatasetVector within the set and geometric objects have a certain spatial relationship between the query object, to return sp spatial data frame
}
\encoding{UTF-8}
\description{
通过指定查询对象与查询模式，查询与查询对象有一定空间关系的对象，并返回为 sp 的空间数据框，被查询数据集支持点、线和面数据集。
}
\usage{
QueryWithGeometry2DF(obj, geo, filter = "", order = "", mode = "")
}
%- maybe also 'usage' for other objects documented here.
\arguments{
  \item{obj}{
  被查询的矢量数据集
}
  \item{geo}{
  查询对象
}
  \item{filter}{
  查询所构建的 SQL 条件语句，即 SQL WHERE clause 语句。
}
  \item{order}{
  查询排序的字段。对于SQL查询得到的记录集中的各记录，可以根据指定的字段进行排序，并可以指定为升序排列或是降序排列，其中 asc 表示升序，desc 表示降序。用于排序的字段必须为数值型。
}
  \item{mode}{
  空间查询模式，包括:
  \enumerate{
  \item{identical: 重合空间查询模式, 搜索对象与被搜索对象的类型必须相同；且两个对象的交集不为空，搜索对象的边界及内部分别和被搜索对象的外部交集为空。}
  \item{disjoint: 分离空间查询模式, 搜索对象和被搜索对象相离，即无任何交集}
  \item{intersect: 相交空间查询模式，如果搜索对象是面，返回全部或部分被搜索对象包含的对象以及全部或部分包含搜索对象的对象；如果搜索对象不是面，返回全部或部分包含搜索对象的对象。}
  \item{touche: 邻接空间查询模式, 搜索对象和被搜索对象的内部交集为空。该关系不适合的对象类型为：点查询点的空间关系。}
  \item{overlap: 叠加空间查询模式, 该关系适合的对象类型为：线/线，面/面。其中，两个几何对象的维数必须一致，而且他们交集的维数也应该和几何对象的维数一样；点与任何一种几何对象都不存在部分重叠的情况。}
  \item{cross: 交叉空间查询模式, 搜索对象和被搜索对象的边界交集可以不为空；点查线/点查面/线查面，不存在包含情况。}
  \item{within: 被包含空间查询模式，如果返回的对象是面，其必须全部包含（包括边接触）搜索对象；如果返回的对象是线，其必须完全包含搜索对象；如果返回的对象是点，其必须与搜索对象重合。该类型与包含（Contain）的查询模式正好相反。}
  \item{contain: 包含空间查询模式，搜索对象和被搜索对象的边界交集可以不为空；点查线/点查面/线查面，不存在包含情况}
  }
}
}
\details{
%%  ~~ If necessary, more details than the description above ~~
}
\value{
 \enumerate{
\item{如果成功，被查询数据集是点数据集，则返回 SpatialPointsDataFrame 对象}
\item{如果成功，被查询数据集是线数据集，则返回 SpatialLinesDataFrame 对象}
\item{如果成功，被查询数据集是面数据集，则返回 SpatialPolygonsDataFrame 对象}
\item{如果失败，返回NULL}
}
}
\references{
%% ~put references to the literature/web site here ~
}
\author{
%%  ~~who you are~~
}
\note{
需要 sp 包
}

%% ~Make other sections like Warning with \section{Warning }{....} ~

\seealso{
\code{\link{QueryWithGeometry}}
}
\examples{

require(sp)
server <- system.file("/sampledata/ChangChun.udb", package="RSuperMap")
ds <- OpenDatasource(server, alias = "test", engine = "udb")
region.dt <- GetDataset(ds, "Frame_R")
line.dt <- GetDataset(ds, "RoadLine2")
regions <- QueryWithIDs(region.dt, ids=c(1:1))
geo.query <- regions[[1]][[1]]
result.df <- QueryWithGeometry2DF(line.dt, geo.query, mode = "contain")
ds <- CloseDatasource(ds)

}
% Add one or more standard keywords, see file 'KEYWORDS' in the
% R documentation directory.
\keyword{ sp }% use one of  RShowDoc("KEYWORDS")
\keyword{supermap}
\keyword{query}
